L'Invite de commandes et la gestion des fichiers et des dossiers


Attrib
Datation des fichiers
Granularité des fichiers
Taille des fichiers
Où sont nichés les atrributs de fichiers ?
À quoi sert l'attribut "Archive" ?
Supprimer les attributs de fichiers
Dir
Mémoriser certains paramètres
Gestion des noms courts et des noms longs
Gestion des caractères génériques
Trier les données
Gérer les répertoires
Tree
Ren
Del
Replace
Visualiser les fichiers temporaires
Éditer les fichiers
Edit
Clip
Type
Effacer le contenu d'un fichier
Créer un fichier vide
Copy
Move
Xcopy
RoboCopy
Fc
Find
Findstr
Forfiles
Tail
Compact
Expand
Cabarc

- Les attributs de fichiers :
La syntaxe est la suivante :
Attrib [{+r|-r}] [{+a|-a}] [{+s|-s}] [{+h|-h}] [[Lecteur:][Chemin] NomFichier] [/s[/d]]
Sous Ms-Dos la syntaxe est identique sauf que le commutateur /d n'est pas présent.

Commutateurs - Action définie
+r Définit l'attribut "Lecture seule"
+a Définit l'attribut "Archive"
+s Définit l'attribut "Système"
+h Définit l'attribut "Caché"
- Permet d'effectuer l'opération inverse

/s : traite les fichiers de tous les répertoires du chemin spécifié.
/d : applique la commande aux répertoires.
Imaginons un répertoire nommé Test et placé à la racine du lecteur C:
Afin visualiser les attributs du répertoire saisissez : attrib test
Si vous souhaitez le rendre inviolable, saisissez : attrib +r +a +s +h test
Saisissez de nouveau : attrib test
À titre de vérification, saisissez : rd test
Le message suivant apparaît : "Accès refusé."
Il ne vous sera pas possible de supprimer le fichier tant que vous n'aurez pas saisi cette commande : attrib -r -a -s -h test
Par ailleurs, l'exécution d'une commande se propage automatiquement à l'ensemble des sous-répertoires du répertoire traité.
Créons dans le répertoire Test deux fichiers nommés A.txt et B.txt.
Si nous voulons que la commande "Attrib" concerne l'ensemble des fichiers placés dans le répertoire Test, nous saisirons : attrib +a +h +r +s c:\test /s
Puis, afin de vérifier que la commande a été bien exécutée : attrib c:\test\*.txt
La manipulation est similaire si, après avoir copié des fichiers d'un Cd-Rom dans notre répertoire Test vous souhaitez désactivé l'attribut Lecture seule attaché à ces fichiers. Saisissez alors : attrib -r -h -s -a c:\test\*.*
Information : Sous Windows XP l'attribut "Lecture seule" ou "Système" ne sont utilisés par l'Explorateur que pour marquer que vous avez personnalisé ce dossier ou qu'il appartient à un dossier système. Vous pouvez donc supprimer ce dossier sans que Windows ne bronche. Mais rappelons qu'à partir de l'Explorateur et quelque soit les attributs que vous avez spécifiés en utilisant la commande "Attrib", il vous sera tout à fait possible de, par exemple, le supprimer !

- Datation des fichiers sous Windows :
Dans un environnement 32 bits trois informations concernant l'historique des fichiers sont disponibles :
1) Avec le bouton droit de la souris cliquez sur un nom de fichier.
2) Dans le menu contextuel qui apparaît cliquez sur Propriétés.
3) Cliquez sur l'onglet Général.
* Créé le : correspond à la date et l'heure de création du fichier dans le répertoire auquel il appartient. Si le fichier est copié dans un autre répertoire une nouvelle datation est assignée.
* Modifié le : correspond à la date de dernière modification. Si le fichier est déplacé cette même valeur est conservée.
* Dernier accès le : c'est la date de dernier accès au fichier par le programme "qui en a eu la charge". Mais cette dernière notion peut prêter à confusion : si vous renommez un fichier, cette opération sera répercutée sur la date de dernier accès mais non sur la date de modification.
En bref, si l'une des datations s'occupe du "contenant" l'autre n'est chargée que de surveiller les modifications opérées sur le "contenu".

- Qu'est ce que la granularité des fichiers ?

Voici une notion très bizarre ! La granularité dans la datation d'un fichier est la durée nécessaire avant que le système estime que le fichier a été modifiée et change donc sa date de dernière modification. Voici un tableau récapitulatif :

Système de fichiers - Résolution du temps
FAT12 2 secondes
FAT 16 2 secondes
FAT 32 2 secondes
NTFS 100 nano secondes
Linux 1 seconde

Ces différences peuvent être importantes quand on effectue une sauvegarde d'un système de fichier à l'autre. Les systèmes de datation ne correspondant pas la comparaison de versions différentes de fichiers ne s'effectue pas correctement. N'importe quel programme de copie vous permet dans ce cas de simuler une "granularité" différente afin d'éviter les programmes lors du processus de sauvegarde de données importantes.

- Bref récapitulatif des unités de mesure en vigueur :
Il y a théoriquement deux types de notation :
Un Kilooctet (Ko ou KB) = 1000 octets.
Un Mégaoctet (Mo ou MB) = 1000 Ko.
Un Gigaoctet (Go ou GB) = 1000 Mo.
C'est la notation standardisée et, apparemment, pas vraiment appliquée par les fabricants de composants ou de logiciels... Et voici celle qui est la plus courante :
Un Kilooctet (Ko ou KB) = 1024 octets.
Un Mégaoctet (Mo ou MB) = 1024 Ko.
Un Gigaoctet (Go ou GB) = 1024 Mo.
Le B majuscule (comme dans "KB") est simplement là pour vous permettre de mieux différencier ces deux termes : Byte et bit.
Rappelez-vous que le terme d'"Octet" est réservé pour un usage strictement "hexagonale". Si votre interlocuteur est non francophone parlez en "Kilobyte".

- Où sont nichés les attributs de fichiers ?
Abréviation de "Binary Digit", un bit peut être soit un 1 ou un 0 et constitue l'unité permettant de coder n'importe quelle information sur un ordinateur. C'est ce qui est appelé couramment une notation binaire. Les humains raisonne quant à eux en utilisant une base hexadécimale (de 0 à 9 soit 10 chiffres). Nous pouvons comparer un bit à un état permettant soit de laisser passer le courant soit de couper l'interrupteur. En bref, soit la lumière est allumée soit elle est éteinte. Dans un monde purement binaire la pénombre n'existe pas. Une autre comparaison consiste à dire qu'une condition est vraie quand elle renvoie la valeur 1 et qu'elle est fausse quand elle renvoie le chiffre 0. Là aussi, il n'y pas la moindre place pour la plus petite nuance...
Définition : Un octet (en anglais, byte) est une unité d'information composée de 8 bits. Une unité d'information composée de 16 bits est appelée Mot. Une unité d'information composé de 23 bits est appelé double-mot ou, en anglais, "DWORD".
Dans les systèmes récents, les informations de fichier sont stockés sur une longueur de 32 bits. Vous y trouverez des informations concernant la taille, la datation et les attributs de fichier. Le tableau ci-dessous récapitule l'affectation de chacun des premiers bits :

Position du bit - Attribut réservé
0 "Lecture seule"
1 "Fichier caché"
2 "Fichier système"
3 Nom de volume
4 Répertoire
5 "Archive"

Le bit n°4 permet donc de distinguer un fichier d'un répertoire. Seuls les bits n°0, 1, 2 et 5 sont accessibles en utilisant la commande "Attrib".

- À quoi sert l'attribut "Archive" ?

Le propos de cet attribut est de déterminer rapidement si le fichier doit être archivé (et donc sauvegarder) ou non. Il fonctionne donc comme une sorte de marqueur. Le principe est le suivant : une fois le fichier copié, l'application chargée de la sauvegarde des fichiers enlève cet attribut. Au moment de faire une nouvelle "passe", l'application "saute" directement vers les fichiers encore indiqués comme possédant l'attribut "Archive" sans vérifier les fichiers déjà archivés. C'est une manière de pouvoir effectuer une sauvegarde sur plusieurs supports amovibles comme, par exemple, différentes disquettes.

- Forcer la suppression des attributs de fichiers :

Voici un remède de cheval à utiliser avec circonspection ! Imaginons un fichier nommé A.dat placé dans C:\Test. En Invite de commandes ou en mode Ms-Dos saisissez :

debug
A 100
mov dx,116
mov ax,4300
int 21
and cx,fffd
mov dx,116
mov ax,4301
int 21
int 20
Appuyez sur la touche Entrée
E 116 'c:\test\a.dat' 0
G
Q

Le programme commence par lire l'interruption 21H afin d'obtenir l'attribut du fichier. Cette information est inscrite dans le registre CX. Le programme appelle la même fonction afin d'écrire l'attribut de fichier dans le registre CX. Quand vous saisissez la commande G, "Debug" exécute les fonctions qui ont été placées en mémoire.

- Tout afficher :
La commande "Dir" permet d'afficher la liste des fichiers et des sous-répertoires à partir d'un emplacement donné.
dir [lecteur:][chemin][Nom_Fichier] [...] [/p] [/q] [/w] [/d] [/a[[:]attributs]][/o[[:]Ordre_Tri]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]
Il n'est pas utile de préciser une nouvelle fois l'emplacement de votre recherche si celle-ci concerne l'arborescence affichée par le prompt.
/p : affiche un écran de la liste à la fois.
/q : affiche les informations relatives aux propriétés du fichier.
/w : affiche la liste en largeur avec jusqu'à cinq noms de fichier ou de répertoire sur chaque ligne.
/d : produit le même résultat que /w à la différence que les fichiers sont triés par colonne.
Par exemple, saisissez : dir c: /p /w
Appuyez à chaque fois sur n'importe quelle touche pour visualiser la page suivante...
/a [[:] attributs] : n'affiche que les noms des objets dotés des attributs spécifiés. Le tableau ci-dessous en dresse un récapitulatif :

Commutateurs - Objets à inclure ou à exclure de la commande
h Fichiers cachés
s Fichiers système
d Répertoire
a Fichiers prêts pour l'archivage
r Fichiers en lecture seule
- Préfixe pour l'opération inverse

Si vous ne souhaitez afficher que les répertoires, saisissez : dir c: /a:d ou, à l'inverse : dir c: /a:-d
Il vous est possible de spécifier un ordre de tri :

Commutateurs - Ordre de tri
n Ordre alphabétique des noms
e Ordre alphabétique des extensions
d Ordre chronologique des dates et des heures, à commencer par la plus ancienne
s Ordre de taille, à commencer par la plus petite
g Répertoires groupés avant les fichiers
- Préfixe pour l'ordre inverse

Saisissez : dir /o:n ou dir /o:d ou dir /o:-d si vous effectuez un tri inverse.
Astuce : Notez que la commande dir /on marche aussi bien que dir /o:n.
Il vous est aussi possible de saisir > sortie.txt Dir à la place de Dir > sortie.txt
/s : affiche toutes les apparitions de l'objet spécifié dans le répertoire et tous ses sous-répertoires.
La commande dir doskey.exe /s permet de localiser l'emplacement du fichier Doskey.exe et ce même si nous ne sommes pas dans C:\WINDOWS\system32 ou C:\WINDOWS\system32\dllcache.
/b : n'affiche pas les informations d'en-tête ou de résumé.
/l : affiche les noms de répertoire et de fichier en minuscules sans les trier.
/n : affiche le format de liste longue où les noms de fichier apparaissent à l'extrême droite de l'écran.
/x : affiche les formes courtes des noms générées pour les fichiers.
/c : affiche le séparateur des milliers pour les tailles de fichier.
/4 : affiche le format d'année à quatre chiffres.
Par ailleurs il est possible de spécifier des caractères génériques :
* Le point d'interrogation ne remplace qu'un caractère.
* L'astérisque remplace un ou plusieurs caractères.
Par exemple, imaginons que nous souhaitons rechercher tous les fichiers dont le nom commence par les lettres D et P et dont l'extension soit .dll et ce sur l'ensemble de votre disque dur, saisissez cette recherche :
dir dp*.dll /s
La commande dir dp?.* /s renverra l'erreur "Fichier introuvable" : il n'y aucun fichier dont le nom ne comporte que trois lettres et commençant par les lettres D et P.
Nous rappelons que la commande "Dir" employée seule équivaut à saisir dir *.*
Afin d'afficher les fichiers ne possédant pas d'extension , saisissez : dir /s /p /a-d *.
Astuce : La commande dir, est un raccourci de celle-ci : dir /a.

- Mémoriser certains paramètres :
Si vous avez l'habitude d'afficher vos commandes d'une certaine façon, il peut être utile de les inscrire en tant que variable d'environnement. Par exemple, saisissez :
set dircmd=/o:gn/p
Cette commande obligera "Dir" à toujours s'exécuter avec les commutateurs spécifiés : l'affichage des arborescences se fera donc page par page. En Invite de commandes rien de plus simple que de rendre cette variable permanente :
1) Avec le bouton droit de la souris cliquez sur l'icône Poste de travail puis la commande Propriétés.
2) Cliquez sur l'onglet Avancé puis le bouton Variables d'environnement.
3) Cliquez sur le bouton Nouveau.
4) Dans la zone de texte Nom de la variable saisissez : dircmd
5) dans la zone de texte Valeur de la, saisissez : /o:gn/p
Il est possible de définir la variable pour un seul utilisateur ou en tant que "variable système".

- Gestion des noms courts et des noms longs :
Il y a une curiosité à propos des noms longs et courts des fichiers. Dans un répertoire nommé Test, créez un nouveau fichier .doc nommé LongNomFichier4.doc.
Saisissez ensuite ces commandes :
dir \test\*4.doc
dit \test\*1.doc
Dans les deux cas le fichier sera trouvé. La première commande retrouve le nom "normal" du fichier tandis que la seconde "pointe" vers son nom court : "LongNo~1.doc".

- Gestion des caractères génériques :
Là aussi, les surprises peuvent être de taille. Dans un répertoire nommé Test créez un fichier nommé abcdefgh.document. Saisissez cette commande :
dir ??????????.???
Bien qu'aucun nombre de caractères ne correspond le fichier est tout de même trouvé ! Sous Ms-Dos cette commande fonctionnera : dir ab*xyz.???
Ce ne sera pas le cas en Invite de commandes.

- Trier les données :
En Invite de commandes la syntaxe de la commande "Sort" est la suivante :
Sort [/r] [/+n] [/m Kilo-Octets] [/l locale] [/rec caractères] [[Lecteur1:][Chemin1]NomFichier1] [/t [Lecteur2:][Chemin2]] [/o [Lecteur3:][Chemin3]NomFichier3]
/r : inverse l'ordre de tri (les données seront triées de Z à A puis de 9 à 0).
/+n : indique le numéro de position du caractère n à partir duquel la commande Sort commencera chaque comparaison. Par exemple, le commutateur /2 signifie que chaque comparaison commencera à partir du second caractère de chaque ligne.
/m KiloOctets : indique le volume de mémoire principale à utiliser pour le tri, en kilo-octets (Ko).
/l locale : ignore l'ordre de tri des caractères défini par les paramètres régionaux par défaut du système.
/rec caractères : indique le nombre maximal de caractères dans un enregistrement ou une ligne du fichier d'entrée (la valeur par défaut est 4 096 et la valeur maximale 65 535).
[Lecteur1:][Chemin1]NomFichier1 : désigne le fichier à trier.
/t [Lecteur2:][Chemin2] : indique le chemin du répertoire qui doit contenir le résultat de la commande. Par défaut, c'est le répertoire temporaire du système qui est utilisé.
/o [Lecteur3:][Chemin3]NomFichier3 : indique le fichier devant contenir l'entrée triée. Si aucun fichier n'est spécifié, les données sont écrites vers la sortie standard.
Soit un fichier nommé a.txt contenant l'ensemble des dépenses engagées au mois de juillet 2004, nous pouvons saisir cette commande : sort /r a.txt
Nous pouvons aussi saisir : sort /r a.txt /o c:\test\Résultat.txt
Les données extraites seront inscrites dans un nouveau fichier nommé Résultat.txt.
Astuce : Saisissez ceci :
Sort
Ligne n°1
Ligne n°0
Ligne n°4
Ligne n°2
Appuyez simultanément sur les touches Ctrl + Z puis sur Entrée.
"Sort" affiche ce que vous avez saisi dans l'ordre !

- Gérer les répertoires :
La création d'un répertoire s'effectue par la commande "Mkdir" ou "Md". En Invite de commandes, saisissez : md "c:\Documents and settings\archive"
Un répertoire nommé Archive sera créé dans C:\Documents and settings.
Afin de supprimer un répertoire, saisissez : rmdir ou rd "c:\documents and settings\archive".
Une remarque importante : puisque le répertoire Documents and settings comporte un espace vous devez encadrer l'emplacement avec des guillemets.
Le commutateur /s permet de supprimer le répertoire spécifié, tous ses sous-répertoires ainsi que l'ensemble des fichiers qui y figurent.
Le commutateur /q permet de supprimer un répertoire en mode silencieux et donc sans message de confirmation.
Sous Ms-Dos, la syntaxe est identique sauf que les commutateurs /s et /q ne sont pas disponibles. Il vous est possible de donner un nom long à votre répertoire. Par exemple, saisissez :
md ArchivesOfficielles
Si vous saisissez la commande "Dir" le répertoire apparaîtra sous cette forme : ARCHIV~1.
De plus, il n'est pas possible dans ce mode de supprimer un répertoire qui contient encore des fichiers. Vous devez dans ce cas vous servir de la commande externe "Deltree".

- Visualiser l'arborescence d'un répertoire :
"Tree" n'est disponible qu'en Invite de commandes. La syntaxe est la suivante :
Tree [Lecteur:][Chemin] [/f] [/a]
/f : affiche les noms des fichiers présents dans chaque répertoire.
/a : les lignes de liaison sont représentées en mode texte et non en mode graphique.
Si nous souhaitons visualiser l'arborescence du dossier C:\Windows\System32\CatRoot nous saisirons : tree c:\windows\system32\catroot
Ou, si je suis déjà sur le prompt C:\> : tree windows\system32\catroot /a
Astuce : Une manière d'afficher l'arborescence complète du répertoire parent est de saisir : tree .. | more

- Manipuler les fichiers et les répertoires :
La commande "Ren" ou "Rename" est très simple d'utilisation. Imaginons que nous souhaitons changer l'extension et le nom de l'ensemble des fichiers texte qui sont placés dans C:\Test nous saisirons à partir de c:\> : ren *.txt *.doc
ou, par exemple : ren a.txt b.txt

- Supprimer un ou plusieurs fichiers :
En Invite de commandes la syntaxe de la commande "Del" (ou "Erase") est la suivante :
Del [Lecteur:][Chemin] NomFichier [ ...] [/p] [/f] [/s] [/q] [/a[:attributs]]
/p : invite à confirmer la suppression du fichier.
/f : force la suppression des fichiers dotés de l'attribut lecture seule.
/s : supprime les fichiers spécifiés du répertoire en cours et de tous ses sous-répertoires.
/q : la commande s'effectuera en mode silencieux.
/a : supprime les fichiers dotés des attributs spécifiés.

Commutateurs - Signification
r "Lecture seule"
a "Archive"
s "Système"
h "Caché"
- Permet d'effectuer l'opération inverse

En Invite de commandes, imaginons que nous ayons deux fichiers nommés A.txt et B.txt placés dans le dossier Test. À partir de l'indicatif C:\Test> saisissez ces commandes :
attrib +r +a +s +h *.*
del /q *.*
dir
attrib
Cela ressemble à un bug mais sous Windows XP le fichier A.txt est absent quand je me servirai de la commande "Dir" et bien là quand j'interroge les attributs de fichiers... En bref, la commande "Del" n'affiche aucune information concernant le résultat d'une action. Ouvrez l'explorateur Windows et supprimez ces fichiers une bonne fois pour toute ! Recréez maintenant les deux mêmes fichiers puis saisissez :
attrib +r +a +s +h *.*
del *.* /a:r
Vous pourrez constater que les fichiers cette fois-ci ont été correctement effacés.
La commande Del. supprime après un message de confirmation tous les fichiers du répertoire par défaut sauf ceux possédant les attributs lecture seule, caché ou système.
Vous pouvez également cette commande : echo y | del *.* > nul. "Echo" enverra un message de confirmation ("Yes") à la commande Delete.

- Remplacer un fichier par une version différente :
En Invite de commandes, la syntaxe de la commande "Replace" est la suivante :
replace [lecteur1:][chemin1] NomFichier [lecteur2:][chemin2] [/a] [/p] [/r] [/w]
replace [lecteur1:][chemin1] NomFichier [lecteur2:][chemin2] [/p] [/r] [/s] [/w] [/u]
/a : ajoute de nouveaux fichiers au répertoire de destination. Il n'est pas possible d'utiliser cette option de ligne de commandes avec les options /s ou /u.
/p : affiche une demande de confirmation avant de remplacer un fichier de destination.
/r : remplace aussi bien les fichiers en lecture seule que les fichiers non protégés. La commande ne peut s'utiliser avec des fichiers cachés ou système.
/w : force la commande "Replace" à attendre que vous insériez une disquette avant de commencer à chercher les fichiers sources.
/s : lance les recherches dans tous les sous-répertoires du répertoire de destination et remplace tous les fichiers correspondant à la spécification. Ce commutateur ne peut être utilisé avec l'option /a.
/u : remplace uniquement les fichiers du répertoire de destination qui sont plus anciens que ceux du répertoire source. Il n'est pas possible d'utiliser le commutateur /u avec l'option /a.
Cette commande est utile quand on souhaite mettre à jour deux répertoires dont l'un sert de sauvegarde. Imaginons deux répertoires avec des versions de fichiers différents : des fichiers texte placés dans C:\Test et des versions différentes de ces fichiers placées dans C:\Test\Sauvegarde. À partir du prompt C:\Test> deux possibilités s'offrent à nous :
* Nous souhaitons écraser les versions précédentes des fichiers :
replace *.txt sauvegarde
* Nous ne souhaitons conserver que les versions les plus récentes des fichiers :
replace *.txt sauvegarde /u

- Visualiser les fichiers temporaires :

Sous Ms-Dos certains fichiers placés dans les répertoires temporaires et d'une taille de 0 Ko ne sont visibles qu'en utilisant un des commandes de redirection suivantes : "Sort" ou "More".
Par exemple, saisissez : dir c:\windows\temp | more

- Éditer les fichiers :

Saisissez cette commande : copy con a.txt
Vous voilà dans une sorte de machine à écrire "sidérale". Tapez deux trois choses puis quittez l'Invite de commandes. Un fichier nommé a.txt aura été créé avec les données que vous avez inscrites.

- Éditer un fichier texte :
La syntaxe de la commande "Edit" est la suivante :
Edit [[Lecteur:][Chemin] Nom_Fichier] [/b] [/g] [/h] [/nohi]
/b : affiche l'Éditeur Ms-Dos en noir et blanc.
/g : utilise la mise à jour de l'écran la plus rapide possible pour un moniteur CGA.
/h : affiche le nombre maximal de lignes possible pour le moniteur courant.
/nohi : permet d'utiliser des moniteurs à 8 couleurs avec l'Éditeur Ms-Dos.
/r : charge le fichier en mode Lecture seule.
/s : force l'utilisation de noms de fichier courts.
/<nnn> : charge un fichier binaire en retournant à la ligne pour <nnn> caractères.
Cette commande n'est utile que si vous avez besoin de modifier un fichier système en démarrant votre ordinateur à partir d'une disquette système ou du Cd-Rom d'installation.

- Transférer des données vers le Presse-papier :

"Clip" est inclus dans le "Windows 2000 Resource Kit software tools" et dans Windows Server 2003. Il vous est possible de vous servir de cette commande sous Windows XP. La syntaxe de la commande est limpide :
À partir du répertoire dont vous souhaitez mémoriser l'arborescence, saisissez :
dir | clip
Ouvrez un nouveau document Bloc-notes puis cliquez sur Édition/Coller
Si vous souhaitez envoyer vers le presse-papier le contenu du fichier Boot.ini, saisissez :
clip < boot.ini
Afin de copier le contenu d'un fichier a.txt qui n'est pas placé dans le répertoire en cours, saisissez :
clip < "c:\test\a.txt"
Conserver dans le Presse-papier les variables d'environnement :
set | clip

- Afficher rapidement le contenu d'un fichier :

La commande "Type" fait très bien l'affaire.
Saisissez Type suivi de l'emplacement et du nom du fichier.
C'est tout !

- Effacer le contenu d'un fichier :
Une manière très simple consiste à saisir :
copy nul a.txt
"Nul" empêche toute sortie. Utilisé avec une commande cela revient à dire de copier 0 donnée dans le fichier a.txt".

- Créer un fichier vide :
Voici une commande qui fonctionne :
type nul>"Fichier vide.txt"

- Copier des fichiers :

La syntaxe de la commande "Copy" est la suivante :
copy [/d] [/v] [/n] [{/y|/-y}] [/z] [{/a|/b}] Source [{/a|/b}] [+ Source [{/a|/b}] [+ ...]] [Destination [{/a|/b}]]
/d : permet d'enregistrer sous une forme décryptée les fichiers cryptés.
/v : vérifie que les nouveaux fichiers sont correctement écrits.
/n : utilise un nom de fichier court.
/y : supprime la confirmation de remplacement d'un fichier de destination existant.
/-y : invite l'utilisateur à confirmer le remplacement d'un fichier de destination existant.
/z : copie des fichiers mis en réseau en mode redémarrage.
/a : désigne un fichier texte ASCII.
/b : désigne un fichier binaire. Une utilisation intéressante de ce commutateur est de permettre de changer la date de dernier accès d'un fichier sans l'ouvrir. Imaginons que vous souhaitez modifier la date d'accès d'un fichier nommé A.txt, saisissez alors : copy /b a.txt+,,
Il n'est pas utile de répéter le nom du fichier dans l'intitulé de destination : imaginons que nous souhaitons copier le fichier A.txt de C:\Test vers C:\Test\Destination nous saisirons à partir de C:\> : copy test\a.txt test\destination
Par ailleurs, il est possible de changer l'extension du fichier tout en gardant le même nom de cette façon : copy test\a.txt test\destination\*.doc
Un fichier nommé A.doc sera créé dans C:\Test\Destination
Même type d'opération mais cette fois-ci en le renommant : copy test\a.txt test\destination\b.*
Un fichier nommé b.txt sera créé dans C:\Test\Destination
Il vous est possible de concaténer plusieurs fichiers en un seul : imaginons deux fichiers a.txt et b.txt placés dans C:\Test. nous pouvons saisir : copy a.txt+b.txt c.* ou copy *.txt c.doc (dans ce cas il n'est pas possible d'utiliser des caractères génériques dans le nom du fichier de destination).
Vous pouvez utiliser la variable d'environnement "Copycmd" pour automatiser un certain nombre de commutateurs par défaut. Sous Windows XP voici la marche à suivre :
1) Avec le bouton droit de la souris cliquez sur l'icône Poste de travail puis sur la commande Propriétés.
2) Cliquez sur l'onglet Avancé puis le bouton Variables d'environnement.
3) Dans la rubrique Variables utilisateur cliquez sur le bouton Nouveau.
4) Dans la zone de texte Nom de la variable :, saisissez : Copycmd
5) Dans la zone de texte Valeur de la, saisissez votre variable.
Il est par exemple possible de saisir le commutateur /-Y.
De cette façon il vous sera afficher un message de confirmation avant toute opération de copie de fichiers.
Cette variable affectera également les commandes "Move" et "Xcopy".

- Transférer un ou plusieurs fichiers :
À la différence de la commande "Copy" la commande "Move" vous permet de déplacer un fichier :
move test\*.txt destination
Le commutateur -y permet éventuellement de supprimer la confirmation de remplacement d'un fichier de destination existant.
Information Un problème particulier est posé par la copie des fichiers cryptés d'une partition NTFS vers une partition non NTFS. Si vous utilisez la commande "Move", un fichier crypté conservera son attribut. Il ne vous sera donc pas possible de le déplacer vers une partition non NTFS. Dans ce cas il faudra vous servir de la commande "Copy" et du commutateur /d.

- Copie avancée des fichiers et des répertoires :

En Invite des commandes la syntaxe de la commande "Xcopy" est la suivante :
xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-jj-aaaa]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:Fichier1[+[Fichier2]][+[Fichier3]] [{/y|/-y}] [/z]
/w : demande d'appuyer sur une touche avant la copie.
/p : demande à l'utilisateur de confirmer la création de chaque fichier de destination.
/c : ne tient pas compte des erreurs.
/v : vérifie chaque fichier au fur et à mesure de son écriture dans le fichier de destination afin de garantir que les fichiers de destination sont identiques aux fichiers sources.
/q : effectue la commande en mode silencieux.
/f : affiche les noms des fichiers sources et de destination pendant la copie.
/l : affiche la liste des fichiers à copier.
/g : crée des fichiers de destination décryptés.
/d[:mm-jj-aaaa] : copie uniquement les fichiers sources qui ont été modifiés à la date précisée ou après cette date.
/u : copie uniquement les fichiers sources qui existent dans la destination.
/i : si une destination n'existe pas, un répertoire sera créé.
/s : à moins qu'ils ne soient vides, copie les répertoires et les sous-répertoires.
/e : copie tous les sous-répertoires, même s'ils sont vides. /e s'utilise en combinaison avec les commutateurs /s et /t.
/t : copie uniquement la structure (l'arborescence) du sous-répertoire et non les fichiers. Pour copier des répertoires vides, vous devez inclure l'option de ligne de commandes /e.
/k : copie les fichiers et conserve l'attribut "Lecture seule" pour les fichiers de destination si les fichiers sources possèdent cet attribut.
/r : copie les fichiers avec un attribut de "Lecture seule".
/h : copie les fichiers dotés des attributs "Fichier caché" et "Fichier système".
/a : copie uniquement les fichiers sources dotés de l'attribut "Archive".
/m : copie les fichiers sources dotés de l'attribut "Archive" et désactive l'attribut "Archive".
/n : crée des copies en utilisant les noms de fichier ou de répertoire abrégés NTFS.
/o : copie les informations relatives à l'appartenance des fichiers et à la liste de contrôle d'accès discrétionnaire (DACL, "Discretionary Access Control List").
/x : copie les paramètres d'audit des fichiers et les informations relatives à la liste de contrôle d'accès du système (SACL, "System Access Control List") (implique l'utilisation de l'option /o).
/exclude:NomFichier1[+[NomFichier2]][+[NomFichier3]] : spécifie la liste des fichiers contenant des chaînes.
/y : supprime la demande de confirmation de remplacement d'un fichier de destination existant.
/-y : affiche la demande de confirmation de remplacement d'un fichier de destination existant.
/z : permet la copie sur un réseau en mode redémarrage.
Voici quelques exemples :
Pour remplacer les fichiers texte du répertoire Sauvegarde qui ont été modifiés à partir du 15 Mai 2004 et ce à partir du Répertoire Test saisissez :
xcopy test\*.txt test\sauvegarde /d:05-15-2004
La commande suivante copie l'ensemble du répertoire Windows vers un répertoire nommé Sauvegarde :
xcopy c:\windows d:\sauvegarde /c/e/h/k
Il est possible de conserver le masque des permissions NTFS quand vous copiez un fichier. Sous Windows XP Édition Professionnelle, cet onglet est visible en suivant cette procédure :
1) Lancez l'explorateur Windows
2) Cliquez sur Outils/Options des dossiers.../Affichage
3) Dans la rubrique Paramètres avancés décochez la case Utiliser le partage de fichier simple (recommandé)
4) Dans le répertoire Test créez un nouveau fichier nommé A.txt. Avec le bouton droit de la souris cliquez sur le nom de fichier puis sur Propriétés et l'onglet Sécurité.
5) Cliquez sur le bouton Paramètres avancés puis décochez la case Hérite de l'objet parent les entrées d'autorisation qui s'appliquent aux objets enfants. Cela inclut les objets dont les entrées sont spécifiquement définies ici.
Nous avons désactivé l'héritage des permissions afin de pouvoir spécifier un jeu de permissions NTFS différent.
6) Dans la boîte de dialogue Sécurité cliquez sur le bouton Copier.
7) Cliquez sur OK
8) Cliquez sur chacun des noms d'utilisateurs ou de groupe qui sont listés puis sur le bouton Supprimer.
Conservez simplement votre nom d'utilisateur.
En admettons que nous copions le fichier dans un répertoire appelé Sauvegarde et placé dans le répertoire par défaut, faites ces deux essais de commandes :
xcopy a.txt sauvegarde
xcopy a.txt /o /x sauvegarde
Dans un premier cas, le jeu des permissions NTFS sera réinitialisé par celui qui s'applique au répertoire "parent" (Sauvegarde) tandis que dans le second cas le masque sera conservé tel quel.
Cette option est utile si, par exemple, vous souhaitez conserver les mêmes permissions d'accès quand vous déplacez un fichier d'un répertoire personnel à un répertoire partagé.
Astuce : Si vous copiez des fichiers dont le nom comporte des espaces vous devez utiliser les guillemets : xcopy /d /e /c "C:\Documents and Settings\All Users\Documents\\" "D:\Sauvegarde\Documents\".
L'utilisation du commutateur Exclude n'est pas tout simple.
Le drapeau \Sauvegarde\ exclura du processus de copie tous les fichiers appartenant au répertoire Sauvegarde.
Le drapeau .txt exclura du processus de copie tous les fichiers portant l'extension .txt.
Si nous souhaitons exclure tous les fichiers Texte il suffit de marquer ce contenu dans un fichier texte nommé, par exemple, exclude.txt :
.txt
Si nous souhaitons copier tous les fichiers du répertoire courant vers le répertoire Temp, la commande à saisir sera alors :
xcopy *.* /exclude:exclude.txt c:\temp
Information : La commande "Xcopy32" est un épigone de "Xcopy". la première vous permettra de gérer les longs noms de fichiers alors que la seconde ne peut être utilisée dans ce cas. Si, par exemple, vous souhaitez effectuer une copie de l'ensemble de vos données d'un disque dur vers l'autre saisissez : xcopy32 C: \ . D:\ /e/c/h/r/k. Attention, il n'y a aucune garantie de résultat !

- Copie industrielle des données :

La dernière version de "RoboCopy" est compatible avec toutes les versions de Windows XP et ultérieure. Cet utilitaire est inclus dans les kits de ressources et dans Windows Server 2003. Ce n'est déjà plus une commande, ni même un programme mais une sorte d'usine à copier des fichiers. Jugez-en plutôt par la syntaxe :
Robocopy Source Destination [Fichier [Fichier]..] [/S | /E] [/LEV:n] [/Z] [/B] [/ZB] [/COPY:Copy_Drapeau] [/SEC] [/COPYALL] [/NOCOPY] [/PURGE] [/MIR] [/MOV] [/MOVE] [/CREATE] [/FAT] [/FFT] [/256] [/MON:n] [/MOT:m] [/A+:{R | A | S | H | N}] [/A-:{R | A | S | H | N}] [/RH:hhmm-hhmm] [/PF] [/IPG:ms] [/A] [/M] [/IA:{R | A | S | H | N | C | E}] [/XA:{R | A | S | H | N | C | E}] [/XF ExFile [ExFile]..] [/XD Répertoire [Répertoire]..] [{/XC|/XN|/XO}] [{/XX|/XL}] [/IS] [/IT] [/MAX:bytes] [/MIN:bytes] [/MAXAGE:{jours | YYYYMMDD}] [/MINAGE:{jours | YYYYMMDD}] [/MAXLAD:{jours | YYYYMMDD}] [/MINLAD:{jours | YYYYMMDD}] [/ITEM] [/IOFF] [/XJ] [/R:Nombre_Tentative] [/W:Temps_D'attente] [/REG] [/TBD] [/L] [/X] [/V] [/TS] [/FP] [/NS] [/NC] [/NFL] [/NDL] [/NP] [/ETA] [/LOG:Nom_Fichier] [/LOG+:Nom_Fichier] [/TEE] [/JOB:Nom_Fichier] [/SAVE:Nom_Fichier] [/QUIT] [/NOSD] [/NODD] [/IF] [/SD:emplacement] [/SD:emplacement]
RoboCopy est capable sans broncher de copier des chemins de plus de 255 caractères (la limite théorique est de 32000 caractères) ainsi que de très larges volumes de données.
Un fichier "supplémentaire" est un fichier ou un répertoire qui existe dans la destination mais pas dans la source ("EXTRA File").
Un fichier "orphelin" est un fichier qui existe dans la source mais pas la destination ("Lonely File").
/S : copie tous les sous-répertoires à l'exception de ceux qui sont vides.
/E : copie tous les sous-répertoires y compris ceux qui sont vides.
/LEV:n : copie seulement le niveau d'arborescence spécifié par n. Par exemple, si vous voulez copier seulement les deux premiers niveaux d'une arborescence employez ce commutateur /lev:2
/Z : copie les fichiers en mode de redémarrage.
/B : copie les fichiers en mode sauvegarde.
/ZB : mélange les deux méthodes.
/COPY:Drapeau : permet de spécifier les propriétés des fichiers à copier.
D : données des fichiers.
A : attribut des fichiers.
T : date de datation des fichiers.
S : descripteur de sécurité (ACL).
O : propriétaire de l'objet.
U : audit de l'objet.
/SEC : copie les fichiers avec leur descripteur de sécurité. C'est l'équivalent de /COPY:DATS.
/COPYALL : copie l'ensemble des attributs des fichiers. C'est l'équivalent de /COPY:DATSOU.
/NOCOPY : copie aucun des attributs de fichiers.
/PURGE : supprime les fichiers et les répertoires de destination qui n'existent plus dans l'arborescence "source".
/MIR : crée une arborescence miroir. C'est l'équivalent de /E /PURGE.
/MOV : déplace les fichiers.
/MOVE : déplace les fichiers et les répertoires.
/A+:{R | A | S | H | N | T}
Ajoute ces attributs aux fichiers copiés :
R : Lecture seule.
S : Système.
A : Archive.
H : Caché.
N : fichier non indexé.
T : fichier temporaire.
/A-:{R | A | S | H | N | T} : supprime les attributs aux fichiers qui seront copiés.
/CREATE : crée l'arborescence avec des fichiers vides seulement de façon à diminuer la fragmentation des fichiers de destination. L'arborescence complète est donc créer dans un premier temps puis la commande exécutée de nouveau sans le commutateur /create. C'est utile si vous copiez de larges volumes de données. N'utilisez pas cette commande avec le commutateur /xo.
/FAT : crée les fichiers de destination en utilisant des noms de fichiers courts.
/FFT : permet une "granularité" de la datation des fichiers compatible avec le système FAT (2 secondes au lieu de 100 nanosecondes).
/256 : désactive le support des très longs noms de fichiers (plus de 255 caractères).
/MON:n : surveille les changements apportés à la source. Le drapeau n précise le nombre de changements possibles apportés à la source. En cas de dépassement du paramètre le processus redémarre dans une boucle.
/MOT:m : surveille les changements apportés à la source. Le drapeau m précise le nombre de minute avant qu'une nouvelle vérification soit effectuée. À chaque expiration du délai le processus redémarre dans une boucle.
/RH:hhmm-hhmm : définit le délai minimum avant qu'une nouvelle copie ne soit permise. Le délai maximum peut être de 24 heures dans une plage de 0000 à 2359.
/PF : effectue des contrôles plus fréquemment afin de vérifier si une nouvelle copie de fichiers est autorisée.
/IPG:ms : durée de l'Inter-Packet Gap en millisecondes. Ce paramètre est utilisée pour libérer de la bande passante sur un lien réseau lent.
Temps IGP ou Inter-Packet Gap : définit une période de silence entre deux paquets dans la norme IEEE 802.
/A : copie seulement les fichiers possédant l'attribut "Archive".
/M : copie seulement les fichiers possédant l'attribut "Archive" et désactive cet attribut des fichiers sources.
/IA:{R | A | S | H | N | C | E | T | O} : inclue les fichiers comportant un de ces attributs.
E : fichier crypté.
T : fichier temporaire.
O : fichier hors connexion.
/XA:{R | A | S | H | N | C | E | T | O} : exclue les fichiers comportant un des ces attributs.
/XF ExFile : exclue les fichiers correspondant à un nom, un emplacement ou un caractère générique.
/XD Répertoire : exclue les répertoires indiqués.
/XC : exclue les fichiers changés.
/XN : exclue les nouveaux fichiers.
/XO : exclue les fichiers les plus anciens.
/XX : exclue les fichiers supplémentaires et les répertoires.
/XL : exclue les fichiers "orphelins" et les répertoires.
/IS : inclue les fichiers semblables.
/IT : inclue les fichiers marqués comme personnalisés. Plus précisément, un fichier personnalisé existe à la fois dans le source et dans la destination, possède la même taille et date d'accès mais a des attributs de fichiers différents.
/MAX:bytes : exclue les fichiers supérieurs à la taille spécifiée.
/MIN:bytes : exclue les fichiers inférieurs à la taille spécifiée.
/MAXAGE:{jours | YYYYMMDD} : exclue les fichiers dont la date de dernière modification est plus ancienne que celle spécifiée.
/MINAGE:{jours | YYYYMMDD} : exclue les fichiers dont la date de dernière modification est plus récente que celle spécifiée.
/MAXLAD:{jours | YYYYMMDD} : exclue les fichiers dont la date de dernière modification est plus ancienne que celle spécifiée.
/MINLAD:{jours | YYYYMMDD} : exclue les fichiers dont la date de dernière modification est plus récente que celle spécifiée.
/IOFF : inclue les fichiers hors connexion.
/ITEM : inclue les fichiers temporaires.
/XJ : exclue les points de montage de volumes.
/R:Nombre_Tentative : spécifie le nombre de tentative en cas de copie défectueuse. La valeur par défaut est de 1 million.
/W:Temps_Attente : spécifie le temps d'attente entre deux tentatives de copie (par défaut elle est de 30 secondes).
/REG : sauvegarde les deux paramètres précédents dans le Registre.
/TBD : attend que les noms de partage soient définis.
/L : liste les fichiers sans les copier.
/X : affiche l'ensemble des fichiers supplémentaires et pas seulement ceux qui ont été sélectionnés.
/V : affiche la sortie de la commande en mode "bavard" spécifiant par là-même les fichiers non copiés.
/TS : affiche la sortie de la commande en incluant les informations de datation.
/FP : affiche le chemin d'accès complet dans la sortie de la commande.
/NS : exclue les indications de taille du fichier dans les informations contenues dans le fichier journal.
/NC : exclue les indications des classes de fichier dans les informations contenues dans le fichier journal.
/NFL : exclue les indications des noms de fichier dans les informations contenues dans le fichier journal.
/NDL : exclue les indication de répertoire dans les informations contenues dans le fichier journal.
/NP : supprime l'affichage de la barre de progression.
/ETA : affiche le temps estimé nécessaire à la copie des fichiers.
/LOG:Nom_Fichier : écrit les informations de configuration dans un fichier journal. Si le fichier existe déjà il sera remplacé.
/LOG+:Nom_Fichier : écrit les informations de configuration dans un fichier journal. Si le fichier existe déjà les informations seront ajoutées.
/TEE : affiche les informations de sortie dans le Console en plus de les rediriger dans un fichier journal précisé par l'emploi des commutateurs /LOG ou /LOG+.
/JOB:Nom_Fichier : se sert des paramètres spécifiés dans un fichier .rcj. Ces fichiers sont appelés des fichier "Job"...
/SAVE:Nom_Fichier : sauvegarde les paramètres dans un fichier .rcj.
/QUIT : quitte le processus de commande sans qu'aucun fichier ne soit copié. Utilisez /QUIT avec /JOB:Nom_Fichier afin de visualiser le contenu d'un fichier JOB.
/NOSD : indique qu'aucune source n'est spécifiée. On se sert de ce commutateur dans les fichiers JOB dans lesquels les informations sur la source sont inclus dans une routine.
/NODD : indique qu'aucune destination n'est spécifiée. On se sert de ce commutateur dans les fichiers JOB dans lesquels les information sur la source sont inclus dans une routine.
/IF : inclue les fichiers, les chemins ou caractères génériques spécifiés. Ce commutateur ne peut être utilisé que dans les fichiers JOB.
/SD:chemin : spécifie le répertoire "source". Cela ne peut être utilisé que dans les fichiers JOB.
Prenons un exemple : nous souhaitons copier l'arborescence dont la racine est C:\Sauvegarde à l'exception des répertoires Test et AExclure. De plus, nous ne copierons que les fichiers dont l'extension commence par la lettre D à l'exception des fichiers .doc.
Nous saisirons donc : robocopy c:\ancien F:\ *.d* /XF *.doc /S /XD test c:\ancien\aexclure
La première partie de la fenêtre récapitulera les options de la commande saisie.
Nous souhaitons lister les fichiers de plus de 32 Mb présent sur C:\ mais sans démarrer l'opération de copie, nous saisirons : robocopy c:\ c:\test /max:33554432 /l
Nous souhaitons déplacer tous les fichiers vieux de plus de 14 jours du répertoire Test vers le répertoire Temp. Nous saisirons : robocopy c:\test %temp% /move /minage:14
Nous souhaitons exclure de la copie une liste importante de fichiers Texte. Dans notre exemple : a, b et c :
Dans un nouveau document Bloc-notes copiez le texte suivant :
/xf
a.txt
b.txt
c.txt
Enregistrez à la racine de votre lecteur le fichier sous, par exemple, ce nom : EXCLURE.RCJ
L'extension .txt qui s'inscrit par défaut doit donc être remplacée.
En Invite de commandes, saisissez cette commande : robocopy c:\test c:\ /JOB:c:\EXCLURE
Les fichiers seront tous copiés du répertoire Test vers la racine du lecteur à l'exclusion des trois fichiers spécifiés.
Il est aussi possible d'employer des caractères génériques en saisissant simplement ceci :
/xf
*.txt
Dans ce dernier cas tous les fichiers .txt seront exclus du processus de copie.
Vous pouvez également spécifier différentes arborescences de cette façon :
/xf
c:\test\sauvegarde

- Analyser des fichiers :
En mode Ms-Dos ou en Invite de commandes la syntaxe de la commande "Fc" est la suivante :
Fc [/a] [/b] [/c] [/l] [/lbn] [/n] [/t] [/u] [/w] [/nnnn] [lecteur1:][chemin1]nom_fichier1 [lecteur2:][chemin2]nom_fichier2
/a : au lieu d'afficher toutes les lignes différentes, Fc n'affichera que la première et la dernière ligne de chaque bloc de différences.
/b : Fc compare les deux fichiers octet par octet et ne tente pas de synchroniser à nouveau le fichier après la découverte d'une discordance.
/c : ignore la casse des lettres.
/l : compare les fichiers en mode ASCII. "Fc" compare les deux fichiers ligne par ligne et tente de synchroniser à nouveau les fichiers après la découverte d'une discordance.
/lbn : définit le nombre n de lignes de la zone tampon de lignes interne. Le nombre de lignes par défaut de cette zone s'élève à 100. Si le nombre de lignes consécutives différentes des fichiers que vous comparez est supérieur à ce nombre, "Fc" annule la comparaison.
/n : affiche les numéros des lignes au cours d'une comparaison ASCII.
/t : empêche "Fc" de convertir les tabulations en espaces.
/u : compare les fichiers comme s'il s'agissait de fichiers texte Unicode (n'existe pas sous Ms-Dos).
/w : compresse les tabulations et les espaces au cours de la comparaison.
/nnnn : indique le nombre de lignes consécutives qui doivent correspondre après une différence. La valeur par défaut est 2.
Imaginons deux fichiers texte comportant respectivement ces quatre lignes :

Contenu du premier fichier - Contenu du second fichier
Linux - Mac
Windows - Windows
Ms-Dos - Ms-Dos
Be-os - Invite de commandes

Une comparaison rapide s'effectue donc en saisissant : fc a.txt b.txt > résultat.txt
La commande fc /3 a.txt b.txt > résultat1.txt affichera un résultat présenté différemment.
En Invite de commandes il vous est possible d'utiiser "Comp". La syntaxe est la suivante :
Comp [données1] [données2] [/d] [/a] [/l] [/n=nombre] [/c]
/d : affiche les différences au format décimal (Le format par défaut est le format hexadécimal.)
/a : affiche les différences sous forme de caractères.
/l : affiche le numéro de la ligne où se présente une différence au lieu d'afficher le décalage en octets.
/n=nombre : compare les premières lignes des deux fichiers jusqu'à concurrence du nombre, même si les fichiers sont de tailles différentes.
/c : ne distingue pas les majuscules des minuscules lors de la comparaison.
Son utilité consiste principalement à déceler une différence de taille entre deux fichiers. Par contre, si les fichiers font la même taille, elle affichera les différences entre les deux fichiers. Par exemple, admettons que nous souhaitons comparer deux fichiers nommés a.txt et b.txt, nous saisirons : comp a.txt b.txt /a /l
La comparaison s'arrête de toute façon une fois dix différences trouvées ou dix lignes explorées. Si vous souhaitez comparer des fichiers volumineux, spécifiez le nombre de lignes à explorer de cette façon : comp a.txt b.txt /a /l /n=195 (les fichiers à comparer font dans ce cas 195 lignes).

- Chercher une chaîne de caractères :
Sous Ms-Dos ou en Invite de commandes la syntaxe de la commande "Find" est la suivante :
Find [/v] [/c] [/n] [/i] "chaîne" [[Lecteur:][Chemin]NomFichier[...]]
/v : affiche toutes les lignes qui ne contiennent pas la chaîne spécifiée.
/c : compte les lignes qui contiennent la chaîne spécifiée et affiche le total.
/n : fait précéder chaque ligne du fichier par son numéro.
/i : la différence entre les majuscules et les minuscules sera ignorée.
L'utilisation de cette commande est plutôt efficace quand il s'agit de rechercher plusieurs fichiers en fonction de leur nom. Par exemple, si nous souhaitons trouver tous les fichiers système dont le nom contient cette occurrence "VIA" et le rediriger vers un fichier nommé résultat.txt; nous saisirons :
dir c:\ /s /b | find "VIA" > résultat.txt
Information : Cette commande ne permet pas d'analyser les chaînes de caractères séparées par un retour chariot.

- Effectuer une recherche à l'intérieur d'un fichier :
En Invite de commandes, la syntaxe de la commande "Findstr" est la suivante :
Findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:fichier] [/f:fichier] [/c:chaîne] [/d:dirlist] [/a:Attribut_Couleur] [chaînes] [[Lecteur:][Chemin] Nom_Fichier [...]]
/b : ne reconnaît un modèle qu'au début d'une ligne.
/e : ne reconnaît un modèle qu'à la fin d'une ligne.
/l : utilise les chaînes de recherche littéralement.
/r : utilise les chaînes de recherche comme expressions régulières. Findstr interprète tous les méta caractères comme des expressions régulières sauf si vous utilisez /l.
/s : recherche les fichiers concordants dans le répertoire en cours ainsi que dans tous ses sous-répertoires.
/i : ne tient pas compte de la casse.
/x : imprime les lignes qui correspondent exactement.
/v : imprime uniquement les lignes qui ne contiennent pas de correspondance.
/n : imprime le numéro de ligne devant chaque ligne qui correspond.
/m : imprime uniquement le nom de fichier si un fichier contient une correspondance.
/o : imprime le décalage devant chaque ligne correspondante.
/p : omet les fichiers contenant des caractères non imprimables.
/offline : traite les fichiers avec l'attribut hors connexion d&eacu